import { IPSControlItem } from '../ipscontrol-item';
import { IPSLanguageRes } from '../../res/ipslanguage-res';

/**
 *
 * @export
 * @interface IPSMenuItem
 */
export interface IPSMenuItem extends IPSControlItem {
  /**
   * 访问用户模式
   * @description 值模式 [视图访问用户] {0：未指定、 2：登录用户、 3：匿名用户及登录用户、 4：登录用户且拥有指定资源能力 }
   * @type {( number | 0 | 2 | 3 | 4)}
   */
  accUserMode: number | 0 | 2 | 3 | 4;

  /**
   * 访问标识
   * @type {string}
   */
  accessKey: string;

  /**
   * 标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  getCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 标题
   * @type {string}
   */
  caption: string;

  /**
   * 计数器标识
   * @type {string}
   */
  counterId: string;

  /**
   * 项类型
   * @description 值模式 [应用菜单项类型（静态）] {SEPERATOR：分隔项、 USERITEM：用户自定义项、 APPMENUREF：菜单引用、 MENUITEM：菜单项、 RAWITEM：直接内容项 }
   * @type {( string | 'SEPERATOR' | 'USERITEM' | 'APPMENUREF' | 'MENUITEM' | 'RAWITEM')}
   */
  itemType:
    | string
    | 'SEPERATOR'
    | 'USERITEM'
    | 'APPMENUREF'
    | 'MENUITEM'
    | 'RAWITEM';

  /**
   * 操作提示信息
   * @type {string}
   */
  tooltip: string;

  /**
   * 操作提示语言资源
   *
   * @type {IPSLanguageRes}
   */
  getTooltipPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 默认展开菜单
   * @type {boolean}
   * @default false
   */
  expanded: boolean;

  /**
   * 是否隐藏
   * @type {boolean}
   * @default false
   */
  hidden: boolean;
}
